package com.wx.file;

import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;

import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;

/**
 * 测试系统缓冲区 和 进程缓冲区
 * @author wangxun
 * @version 1.0
 * @description: TODO
 * @date 2021/1/27 3:17 下午
 */
public class SysBufVsProBuf {
    File file;
    @BeforeEach
    void init(){
        file = new File("src/main/resources/buffer.txt");
        if(file.exists()){
            file.delete();
        }
    }

    /**
     * FileOutputStream 只要调用write方法就算只有一个字节,也会写入磁盘
     * @throws IOException
     */
    @Test
    void writeTest()throws IOException {
        FileOutputStream os = new FileOutputStream(file);
        for (int i = 0; i < 1; i++) {
            os.write(98);

        }
        System.in.read();
    }

    /**
     * BufferedOutputStream 在小于默认容量8KB的时候,不调用flush()是不会写入硬盘中的
     * @throws IOException
     */
    @Test
    void BufferedWriterTest()throws IOException {
        BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(file));
        bos.write(new byte[1024*7]);

    }
}
